274A - k-Multiple Free Set - CodeForces Solution


binary search greedy sortings *1500

Please click on ads to support us..

C++ Code:

#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll;
const int MAX = 100005;
 
int n, k, x, y, p;
int a[MAX], b[MAX];
 
int main() {
    ios::sync_with_stdio(false);
    cin >> n >> k;
    for(int i = 0; i < n; i++)
        cin >> a[i];
    sort(a, a + n);
 
    if(k == 1){
        cout << n << endl;
        return 0;
    }
 
    for(int i = 0; i < n; i++){
        y = a[i];
        b[i] = 1;
        if(y % k != 0) continue;
        x = y / k;
        p = lower_bound(a, a + n, x) - a;
        if(a[p] == x){
            b[i] = b[p] + 1;
            b[p] = 0;
        }
    }
 
    int ans = 0;
    for(int i = 0; i < n; i++){
        ans += (b[i] + 1) / 2;
    }
 
    cout << ans << endl;
 
    return 0;
}


Comments

Submit
0 Comments
More Questions

831B - Keyboard Layouts
814A - An abandoned sentiment from past
268C - Beautiful Sets of Points
1391C - Cyclic Permutations
11A - Increasing Sequence
1406A - Subset Mex
1365F - Swaps Again
50B - Choosing Symbol Pairs
1719A - Chip Game
454B - Little Pony and Sort by Shift
1152A - Neko Finds Grapes
1719B - Mathematical Circus
1719C - Fighting Tournament
1642A - Hard Way
285C - Building Permutation
1719E - Fibonacci Strings
1696C - Fishingprince Plays With Array
1085A - Right-Left Cipher
1508B - Almost Sorted
1690C - Restoring the Duration of Tasks
1055A - Metro
1036D - Vasya and Arrays
1139C - Edgy Trees
37A - Towers
353A - Domino
409H - A + B Strikes Back
1262A - Math Problem
158C - Cd and pwd commands
194A - Exams
1673B - A Perfectly Balanced String